home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows 95 API Bible
/
Windows 95 API Bible 3 Disc Set.iso
/
Win32 API Bible Book 1 of 3.iso
/
chapte22
/
ex4.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-29
|
3KB
|
68 lines
#include <genstub.c>
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static BOOL bAnsi = TRUE;
switch (uMsg)
{
case WM_COMMAND:
switch ( LOWORD( wParam ) )
{
case IDM_TEST:
{
int i, j;
HFONT hOldFont;
TCHAR szTemp[64];
TCHAR szBuffer[64];
HDC hDC = GetDC( hWnd );
bAnsi = !bAnsi;
if (bAnsi)
hOldFont = SelectObject( hDC, GetStockObject(
ANSI_FIXED_FONT ) );
else
hOldFont = SelectObject( hDC, GetStockObject(
OEM_FIXED_FONT ) );
szTemp[0]=0;
for ( j=0; j<16; j++ )
{
wsprintf( szBuffer, "%X ", j );
strcat( szTemp, szBuffer );
}
TextOut( hDC, 22, 0, szTemp, lstrlen( szTemp ) );
for ( i=0; i<16; i++ )
{
wsprintf( szTemp, "%2X ", i*16 );
for ( j=0; j<16; j++ )
{
wsprintf( szBuffer, "%c ", j+i*16 );
strcat( szTemp, szBuffer );
}
if (!bAnsi)
CharToOemBuff( szTemp, szTemp, lstrlen( szTemp ) );
TextOut( hDC, 0, (i + 1)*15, szTemp, lstrlen(szTemp) );
}
lstrcpy( szBuffer, bAnsi ? "ANSI character set" :
"OEM character set " );
TextOut( hDC, 0, 256, szBuffer, lstrlen(szBuffer) );
DeleteObject( SelectObject( hDC, hOldFont ) );
ReleaseDC( hWnd, hDC );
}
break;
case IDM_EXIT:
DestroyWindow( hWnd );
break;
}
break;
case WM_DESTROY:
PostQuitMessage( 0 );
break;
default:
return( DefWindowProc( hWnd, uMsg, wParam, lParam ) );
}
return( NULL );
}